﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Data.SqlClient;

namespace VerdePimienta2._0
{
    public partial class ModificarEmpleado : Form
    {
        string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\des_VP.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Documents and Settings\\Chema\\Mis documentos\\Visual Studio 2008\\Projects\\VerdePimienta2.0\\VerdePimienta2.0\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        public ModificarEmpleado()
        {
            InitializeComponent();
        }

        //Carga inicila panel
        private void ModificarEmpleado_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'verdepimientadbDataSet.LlenarCmbEmpleados' table. You can move, or remove it, as needed.
            //this.llenarCmbEmpleadosTableAdapter.Fill(this.verdepimientadbDataSet.LlenarCmbEmpleados);

            RellenarComboEmpleados r = new RellenarComboEmpleados();
            r.RellenarComboE(cmbEmpModif);

            cmbEmpModif.SelectedIndex = 0;
        }

        //Inicialización variables globales panel
        bool EmpleadoModificarEncontrado = false;

        //Botón BUSCAR Empleado
        private void btnBuscarEmpleado_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection conBuscarEmpM = new SqlConnection(constring);
                conBuscarEmpM.Open();
                SqlDataAdapter daBuscarEmpM = new SqlDataAdapter("Select * From Empleados", conBuscarEmpM);
                DataSet dsBuscarEmpM = new DataSet("Empleados");
                daBuscarEmpM.Fill(dsBuscarEmpM, "Empleados");

                if (cmbEmpModif.Text == "")
                {
                    MessageBox.Show("Debe seleccionar un empleado para realizar la búsqueda", "Error búsqueda", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    EmpleadoModificarEncontrado = false;
                }
                else
                {
                    DataRow[] foundRow = dsBuscarEmpM.Tables["Empleados"].Select("NumUsuario like'" + cmbEmpModif.Text + "%'");
                    txtModifNomEmp.Text = foundRow[0]["Nombre"].ToString();
                    txtModifApeEmp.Text = foundRow[0]["Apellidos"].ToString();
                    txtModifNacEmp.Text = foundRow[0]["Nacionalidad"].ToString();
                    txtModifTlfEmp.Text = foundRow[0]["Telefono"].ToString();
                    txtModifMovEmp.Text = foundRow[0]["Movil"].ToString();
                    txtModifDniEmp.Text = foundRow[0]["Dni"].ToString();
                    txtModifNumUsuEmp.Text = foundRow[0]["NumUsuario"].ToString();
                    EmpleadoModificarEncontrado = true;
                }
                conBuscarEmpM.Close();
            }
            catch (Exception exc)
            {
                MessageBox.Show("Error en acceso a base de datos.", exc.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        //Botón MODIFICAR Empleado
        private void btnguardarDatosEmpleado_Click(object sender, EventArgs e)
        {
            if (EmpleadoModificarEncontrado)
            {
                Validaciones v = new Validaciones();
                if (v.ValidarTlfsEmpleado(txtModifTlfEmp.Text, txtModifMovEmp.Text))
                {
                    DialogResult drEmp = MessageBox.Show("¿Está seguro de realizar la modificación de empleado?", "Modificación Empleado.", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                    if (drEmp == DialogResult.OK)
                    {
                        try
                        {
                            SqlConnection conModifEmp = new SqlConnection(constring);
                            conModifEmp.Open();
                            SqlDataAdapter daME = new SqlDataAdapter("Select * From Empleados", conModifEmp);
                            DataSet dsME = new DataSet("Empleados");
                            daME.Fill(dsME, "Empleados");
                            DataRow[] filaModificar = dsME.Tables["Empleados"].Select("NumUsuario like'" + cmbEmpModif.Text + "%'");

                            //Guardar datos cambiados en la tabla Empleados
                            filaModificar[0]["Nombre"] = txtModifNomEmp.Text;
                            filaModificar[0]["Apellidos"] = txtModifApeEmp.Text;
                            filaModificar[0]["Telefono"] = txtModifTlfEmp.Text;
                            filaModificar[0]["Movil"] = txtModifMovEmp.Text;
                            filaModificar[0]["Dni"] = txtModifDniEmp.Text;
                            filaModificar[0]["Nacionalidad"] = txtModifNacEmp.Text;
                            filaModificar[0]["NumUsuario"] = txtModifNumUsuEmp.Text;

                            SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(daME);
                            daME.Update(dsME, "Empleados");                            
                            conModifEmp.Close();

                            //Limpiar textBox y cerrar la conexión
                            resetForm();
                            conModifEmp.Close();

                            MessageBox.Show("La modificación de datos de empleado se ha realizado con éxito");

                            Close();
                        }
                        catch (Exception exc)
                        {
                            MessageBox.Show("Error en acceso a base de datos.", exc.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("El teléfono del usuario no tiene el formato correcto", "Error datos teléfono", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Debe realizar la búsqueda de un empleado primero.", "Error búsqueda empleado", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }        
        }

        //Función ResetForm
        private void resetForm() 
        {            
            txtModifNomEmp.Clear();
            txtModifApeEmp.Clear();
            txtModifTlfEmp.Clear();
            txtModifMovEmp.Clear();
            txtModifDniEmp.Clear();
            txtModifNacEmp.Clear();
            txtModifNumUsuEmp.Clear();
            cmbEmpModif.SelectedIndex = -1;
            EmpleadoModificarEncontrado = false;
        }
    }
}
